package com.yidu.labyrinth.dao;

import com.yidu.labyrinth.main.LabyrinthRoleEntity;
import com.yidu.labyrinth.main.LabyrinthRoleOrUserEntity;
import com.yidu.labyrinth.main.LabyrinthUserEntity;
import com.yidu.labyrinth.vo.Pages;

import java.util.List;

/**
 * @描述： 用户权限Dao
 * @ClassName:labyrinth
 * @backage:com.yidu.labyrinth.dao
 * @Date:2019 2019/9/25 13:28
 * @Author:易嵘
 **/
public interface LabyrinthUserDao {
    /**
     * 用户修改
     * @param labyrinthUserEntity 用户po
     * @return 回执函数
     */
    int update(LabyrinthUserEntity labyrinthUserEntity);

    /**
     * 用户增加
     * @param labyrinthUserEntity 用户po
     * @return 回执函数
     */
    int add(LabyrinthUserEntity labyrinthUserEntity);

    /**
     * 用户角色关联增加
     * @param labyrinthRoleOrUserEntity 用户角色关联po
     * @return 回执函数
     */
    int addUserOrRole(LabyrinthRoleOrUserEntity labyrinthRoleOrUserEntity);

    /**
     * 查询所有（分页，条件）
     * @param labyrinthUserEntity 用户po
     * @param pages 分页对象
     * @return 用户po集合
     */
    List<LabyrinthUserEntity> findAll(LabyrinthUserEntity labyrinthUserEntity, Pages pages);

    /**
     * 单个查询
     * @param id 用户id
     * @return 用户po
     */
    LabyrinthUserEntity findById(String id);

    /**
     * 查询总行数（条件）
     * @param labyrinthUserEntity 用户po
     * @return 总行数
     */
    Long userCount(LabyrinthUserEntity labyrinthUserEntity);

    /**
     * 查询所有角色po
     * @return 角色po集合
     */
    List<LabyrinthRoleEntity> findAllRole();

    /**
     * 根据用户id查询用户角色关联po
     * @return 用户角色关联po集合
     */
    List<LabyrinthRoleOrUserEntity> findAllUserOrRole(String id);

    int deleteUserOrRole(String id);

    LabyrinthUserEntity login(String userName, String userPwd);
}

